package com.zhisheng.day10_tlias.controller;
/*
    专门完成文件上传的controller

    在controller中,要想接收前端传递的文件上传项,必须给参数设计一个 MultipartFile 类型的参数(springmvc提供的)

 */

import com.zhisheng.day10_tlias.entry.R;
import com.zhisheng.day10_tlias.utils.MyAliYunOssUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

@RestController
@RequestMapping("upload")
public class MyUploadController {

    @Autowired
    private MyAliYunOssUtils myAliYunOssUtils;

   /*
    // 本地上传
    @PostMapping
    public R<String> upload(MultipartFile image) throws IOException {
        // 面向 image 完成 文件上传的操作
        String filename = image.getOriginalFilename();
        InputStream inputStream = image.getInputStream();
        // 获取原始文件的后缀名,再利用java的随机字符串,生成一个永远不重复的字符串当成文件名即可
        String[] arr = filename.split("\\.");
        filename = UUID.randomUUID().toString()+"."+arr[arr.length-1];
        IOUtils.copy(inputStream,new FileOutputStream("day10_tlias/src/main/resources/static/image/"+filename));
        return R.success("https://pic2.zhimg.com/v2-daa8c46db2f8ca7c70fd59529899ff15_r.jpg");

    }*/

    // 使用阿里云上传
    @PostMapping
    public R<String> upload(MultipartFile image) throws IOException {
        // 面向 image 完成 文件上传的操作
        String filename = image.getOriginalFilename();
        byte[] bytes = image.getBytes();
        // 获取原始文件的后缀名,再利用java的随机字符串,生成一个永远不重复的字符串当成文件名即可
        String[] arr = filename.split("\\.");
        filename = UUID.randomUUID().toString()+"."+arr[arr.length-1];
        // 调用阿里云的代码,完成对arr的内容进行上传,上传成功之后,返回一个oss的外网路径
        String url = myAliYunOssUtils.upload(filename,bytes);
        return R.success(url);

    }
}
